package com.atguigu.java;

/**
 *  多线程的创建，方式一：继承于Thread类
 *      1.创建一个继承于Thread类的子类
 *      2.重写Thread类的run方法---->此线程执行的操作声明在run()方法中
 *      3.创建Thread类的子类对象
 *      4.通过此对象调用start()方法
 *
 *   例子：遍历100以内的所有的偶数
 *
 * @author : leimingchao
 * @date Date : 2021年10月01日 16:40
 */
public class ThreadTest {

    public static void main(String[] args) {

        MyThread t1 = new MyThread();

        //start()方法作用：1.启动当前线程 2.调用当前线程的run()方法
        t1.start();
        //问题一：我们不能通过直接调用run()方法启动线程
        // t1.run();

        //问题二：再启动一个线程，遍历100以内的偶数。不可以还让已经start()的线程去执行，会报IllegalThreadStateException异常
        // t1.start();

        //我们需要重新创建一个线程对象
        MyThread t2 = new MyThread();
        t2.start();

        //如下的操作仍然是在main线程中执行的
        for (int i = 0; i < 100; i++) {

            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + ":" + i + "*****************main()*************");
            }
        }
    }

}

class MyThread extends Thread {

    @Override
    public void run() {

        for (int i = 0; i < 100; i++) {

            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + ":" + i);
            }
        }
    }
}
